package wiki.generic.med;

import wiki.generic.bar.BarLink;
import wiki.generic.bar.SideBar;
import wiki.generic.io.SideBarLinksReader;

/**
 * 
 * @author <p><strong>JwTeam</strong></p> 
 * Interfaccia per la gestione della sidebar
 */
public interface BarService {
	
	/**
	 * 
	 * @param corso nome corso
	 * @return SideBar del corso richiesto
	 */
	public SideBar getSideBar(String corso);
	
	/**
	 * 
	 * @param corso nome corso
	 * @param category categoria del link
	 * @param name nome link
	 * @param URL url associato al link
	 */
	public void addNewLink(String corso,String category, String name, String URL);
	
	/**
	 * 
	 * @param corso nome corso
	 * @param category categoria del link
	 */
	public void deleteSideBarCategory(String corso,String category);
	
	/**
	 * 
	 * @param corso nome corso
	 * @param category categoria del link
	 * @param name nome link
	 */
	public void deleteLink(String corso,String category, String name);
	
	/**
	 * 
	 * @param corso nome corso
	 * @param category categoria del link
	 * @param name nome link
	 * @param newName nuovo nome per il link
	 */
	public void setNewLinkName(String corso,String category,String name, String newName);
	
	/**
	 * 
	 * @param name nome link
	 * @param URL url del link
	 * @return BarLink
	 * @see BarLink
	 */
	public BarLink generateLink(String name,String URL);
	
	/**
	 * 
	 * @param lreader un implementazione di SideBarLinksReader
	 * @see SideBarLinksReader
	 */
	public void setBreader(SideBarLinksReader lreader);
	
	
}
